package bintree.leetcode;

//572. 另一棵树的子树

public class Num572_isSubtree {
    public boolean isSubtree(TreeNode root, TreeNode subRoot) {
        if(root==null && subRoot==null){
            return true;
        }
        if(root==null || subRoot==null){
            return false;
        }
        // root和subRoot相同 || 左树包含 || 右树包含
        return isSameTree(root,subRoot) ||isSubtree(root.left,subRoot) ||isSubtree(root.right,subRoot);
    }

    //100. 相同的树
    public boolean isSameTree(TreeNode p, TreeNode q) {
        if(p==null && q==null){
            return true;
        }
        if(p==null ||q==null){
            return false;
        }
        return p.val==q.val && isSameTree(p.left,q.left) &&isSameTree(p.right,q.right);
    }
}
